﻿//using System;
//using System.Collections;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Xml;
//using System.Xml.XPath;
//using System.Xml.Xsl;
//using System.Diagnostics;

//namespace GenericLibrary.Xml.XPath {

//    public class SortedXPathNodeIterator : XPathNodeIterator<SortedXPathNodeIterator> {

//        private List<XPathNavigator> _nodeSet;

//        public SortedXPathNodeIterator() { }

//        public SortedXPathNodeIterator( XPathNodeIterator nodeSet, string keyExpression ) {
//            try {
//                this._nodeSet = new List<XPathNavigator>( nodeSet.Count );
//                foreach( XPathNavigator node in nodeSet ) {
//                    this._nodeSet.Add( node );
//                }
//                this._nodeSet.Sort( new XPathNavigatorKeyComparer( keyExpression ) );
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }

//        public XPathNavigator this[ int position ] {
//            get {
//                try {
//                    return this._nodeSet[ position ];
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        protected override IEnumerable<XPathNavigator> NodeSet {
//            get {
//                try {
//                    return this._nodeSet;
//                } catch( Exception ) {
//                    Debug.Assert( false );
//                    throw;
//                }
//            }
//        }

//        protected override void CopyFrom( SortedXPathNodeIterator source ) {
//            try {
//                this._nodeSet = source._nodeSet;
//            } catch( Exception ) {
//                Debug.Assert( false );
//                throw;
//            }
//        }
//    }
//}
